package com.hzsparrow.ai.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hzsparrow.ai.entity.Conversation;

import java.util.List;

/**
 * 对话服务接口
 */
public interface ConversationService extends IService<Conversation> {
    
    /**
     * 创建对话
     *
     * @param conversation 对话信息
     * @return 创建的对话
     */
    Conversation createConversation(Conversation conversation);
    
    /**
     * 根据ID获取对话
     *
     * @param id 对话ID
     * @return 对话信息
     */
    Conversation getConversation(Long id);
    
    /**
     * 根据会话ID获取对话
     *
     * @param sessionId 会话ID
     * @return 对话信息
     */
    Conversation getConversationBySessionId(String sessionId);
    
    /**
     * 更新对话信息
     *
     * @param conversation 要更新的对话信息
     * @return 更新后的对话信息
     */
    Conversation updateConversation(Conversation conversation);
    
    /**
     * 删除对话
     *
     * @param id 对话ID
     * @return 是否删除成功
     */
    boolean deleteConversation(Long id);
    
    /**
     * 获取用户的所有对话
     *
     * @param userId 用户ID
     * @return 对话列表
     */
    List<Conversation> getUserConversations(Long userId);
    
    /**
     * 分页查询对话列表
     *
     * @param page 页码
     * @param size 每页大小
     * @param userId 用户ID（可选）
     * @return 分页对话列表
     */
    Page<Conversation> listConversations(int page, int size, Long userId);
    
    /**
     * 更新对话标题
     *
     * @param sessionId 会话ID
     * @param title 新标题
     * @return 更新后的对话
     */
    Conversation updateConversationTitle(String sessionId, String title);
} 